In the network protocol of an OSI reference model, the functions of a data communication network are broadly divided into a hierarchy of seven layers, these layers being, in order from the lowest, the physical layer, the data link layer, the network layer, the transport layer, the session layer, the presentation layer, and the application layer. In a packet network, when applications on terminals communicate data that extend over a plurality of packets, a virtual connection is extended between applications and the application data are sent over this connection. Such a connection is typically established using a protocol that is a higher layer than transport. In addition, among the protocols of the layer in which the connection is extended, there exists a protocol having the capability to implement both flow control for controlling the rate on the transmission side such that the capabilities of the reception process on the receiving side are not exceeded, and congestion control for controlling the rate on the transmission side such that congestion does not occur in the intervening network (the two capabilities together being referred to as “rate control”). In addition, rate control often involves the return of feedback information from the receiving side to the transmitting side (information regarding the sequence numbers of data that have been received correctly or the remaining space in the reception buffer on the receiving side) to implement feedback control for controlling the transmission rate on the transmitting side. Typically, this congestion control capability is realized in the transport layer, and in the following explanation, connections that are extended between transmitting and receiving applications by protocol that relates to the above-described congestion control are therefore referred to as transport layer connections. TCP (also referred to as “Transmission Control Protocol” and “Transport Control Protocol”) that is now widely used on the Internet is also a transport layer protocol and has a congestion control capability.
The congestion control capability of transport layer protocol realizes rate control for individual connections independent of each other as described below. When a plurality of transport layer connections exist simultaneously on a particular link and compete for the bandwidth of the link, the components that realize processing of the transport layer protocol that includes the transmission-side congestion control of these connections (referred to as “transport layer connection termination units”) implement rate control separately for each connection. In TPC, packet loss or increase in delay is detected based on ACK packets from the reception terminal, whereby control is implemented such that the link bandwidth is used completely by all connections, and moreover, such that the bandwidth that the connections compete for is allotted substantially equally among the connections. It was therefore not possible to realize efficient communication in which high bandwidth is allotted to specific connections or in which bandwidth is circulated among connections. In addition, the congestion control capability of the transport layer realizes transmission at an appropriate rate by learning the state of congestion of the network after establishing a connection. As a result, communication efficiency was poor immediately after the establishment of a connection.
Techniques for dealing with these problems include the following examples of the prior art.
The first example of the prior art is a method realized by packet scheduling of routers in which packets that pertain to a specific connection are identified and priorities established among connections by, for example, allotting higher bandwidths to specific flows.
The second example of the prior art is a method referred to as a “Congestion Manager.” According to this method, for a plurality of transport layer connections that are extended between a particular set of terminals (for example terminal A and terminal B), instead of implementing separate congestion control for the transmission rates of each of these connections, the overall transmission rate is taken as a rate that is obtained by congestion control that is the same as for one TCP, and this one transmission bandwidth is then allotted to each of the connections.
The third example of the prior art is a method in which the TCP of a plurality of terminals is first terminated, multiplexed as one TCP and transmitted, and then again separated into the original TCP close to the receiving terminal and relayed (As an example, refer to JP-A 2002-185488).
As the first problem of the methods of the prior art, in the first example of the prior art, the control of priority in packet scheduling and the control of fixed bandwidth allotment must be carried out in all routers on the communication path of transceiving terminals, and as a consequence, the need arises for the replacement of a multiplicity of routers, and this results in the cost of a multiplicity of devices and the inconvenience entailed for replacing the devices.
As the second problem of the prior art, in the second and third examples of the prior art, control of the throughput of all connections being observed is realized by using the congestion control of one already existing TCP, and as a result, the effective rate of all traffic that is being observed (the throughput of data that actually arrive at the receiving side) could not be set to a particular desired value, and priorities could not be established with respect to traffic other than the traffic that is being observed.
As the third problem of the prior art, in the second example of the prior art, although harmony can be obtained in the congestion control for a plurality of transport layer connections that are extended between the same set of terminals, harmony of the congestion control could not be achieved for transport layer connections that are extended between different sets of terminals.
As the fourth problem of the prior art, in the third example of the prior art, the initial transmission rate of a terminal is the TCP slow start, and considerable time is required for the rate to reach a suitable value.